#USB摄像头
import cv2
import time
import os

# 指定保存图片的目录
save_dir = "/home/ljd/ljd/picture/"
# 确保目录存在，如果不存在则创建
if not os.path.exists(save_dir):
    os.makedirs(save_dir)

cap = cv2.VideoCapture(0)

# 设置捕获图像的时间间隔（300毫秒）
interval = 0.3  # 300毫秒
frame_count = 0  # 用于给图片命名

try:
    while True:
        # 获取当前时间
        start_time = time.time()

        # 从摄像头读取一帧
        ret, frame = cap.read()
        if ret:
            cv2.imshow('摄像头', frame)

            # 保存图片
            frame_filename = os.path.join(save_dir, f"frame_{frame_count}.jpg")
            cv2.imwrite(frame_filename, frame)
            frame_count += 1

        # 等待按键，如果按下'q'则退出循环
        if cv2.waitKey(1) == ord('q'):
            break

        # 计算当前帧处理所需时间
        elapsed_time = time.time() - start_time

        # 如果处理时间小于300毫秒，则等待剩余时间
        if elapsed_time < interval:
            time.sleep(interval - elapsed_time)

except KeyboardInterrupt:
    pass

finally:
    cap.release()
    cv2.destroyAllWindows()

